package it.poste.il.compensatore.service;

import it.poste.il.compensatore.entities.MessageStatus;

import java.util.List;

/**
 * Interface of MessageStatusService.
 */
public interface MessageStatusService {
	
	/**
	 * Method that retrieve the message status by string id.
	 * @param id Id to identify the message status.
	 * @return MessageStatus The entity MessageStatus.
	 */
	public MessageStatus retrieveByID(String id);
	
	/**
	 * Method that retrieve the message status by long id.
	 * @param id Id to identify the message status.
	 * @return MessageStatus The entity MessageStatus.
	 */
	public MessageStatus loadByID(Long id);

	/**
	 * Method that retrieve the string status by long id.
	 * @param msgSts The Message Status.
	 * @return String The description of the entity Message Status.
	 */
	public String retrieveDescription(MessageStatus msgSts);

	/**
	 * The list of all message status.
	 * @return List The list of Message Status.
	 */
	public List<MessageStatus> retrieveAll();

	/**
	 * Method that save the message status.
	 * @param messageStatus Message status to save.
	 * @return MessageStatus The Message Status saved.
	 */
	public MessageStatus save(MessageStatus messageStatus);

	/**
	 * Update the message status.
	 * @param message Message Status to update.
	 * @return void
	 */
	public void update(MessageStatus messageStatus);

	/**
	 * Delete the message status.
	 * @param messageStatus Message Status to delete.
	 * @return void
	 */
	public void delete(MessageStatus messageStatus);
}
